home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2006 December
/
PCWorld_2006-12_cd.bin
/
v cisle
/
pcw
/
pcw1-1.v06.exe
/
pcw1-1.v06.bat
Wrap
DOS Batch File
|
2006-10-20
|
5KB
|
176 lines
@echo off
title pcw1-1.V06 (Mirror-Batch)
set zquelle=%1
set zkopie=%2
set zmodus=%3
FOR %%A in (0 1 2 9) DO IF (%%A)==(%zmodus%) set zbatch=1
if (%zbatch%)==() set zmodus=
set ztmp=
set ZAN=
set zf=0
doskey a= > NUL
doskey n= > NUL
doskey 0= > NUL
doskey 1= > NUL
doskey 2= > NUL
color F1
cls
mode con cols=120
echo.
echo ╔═══════════════════════════════════════╗
echo ║Porovnani souboru pomoci pcw1-1.v06.BAT║
echo ╚═══════════════════════════════════════╝
echo.
REM Input Source Folder --------------------------------------------------
:Zdroj
if (%zquelle%)==() SET /P zquelle= Zdrojova slozka:
set zquelle=%zquelle:"=%
if %errorlevel% EQU 9009 (
Echo.
Echo Pricina chyby:
Echo Slozka na nejvyssi urovni nesmi obsahovat znak "&".
Echo.
goto OVER
)
if %zquelle:~-1%==\ set zquelle=%zquelle:~0,-1%
if NOT exist "%zquelle%" (
echo.
echo CHYBA: Tato zdrojova slozka neexistuje...
set zquelle=
set zbatch=
GOTO Quelle
)
REM Input Copy Folder ----------------------------------------------------
if (%zkopie%)==() SET /P zkopie= Cilova slozka:
set zkopie=%zkopie:"=%
if %errorlevel% EQU 9009 (
Echo.
Echo Pricina chyby:
Echo Slozka na nejvyssi urovni nesmi obsahovat znak "&".
Echo.
goto OVER
)
if %zkopie:~-1%==\ set zkopie=%zkopie:~0,-1%
if exist "%zkopie%" goto Modus
echo. && echo POZOR: "%zkopie%" neni k dispozici. && Echo.
set zbatch=
set /P zan= Vytvorit novou? [a-n]:
if /i NOT (%zan%)==(a) Goto OVER
md "%zkopie%"
set zmodus=1
if not exist "%zkopie%" goto OVER
REM Input Mode -----------------------------------------------------------
:Modus
if NOT (%zmodus%)==() goto ModeDone
echo.
echo [0] Odstranit: Odstrani v cilove slozce VSECHNY prebytecne slozky a soubory.
echo [1] Kopirovat: Doplni vsechny soubory, ktere v cilove slozce chybi nebo nahradi starsi verze souboru novejsimi.
echo [2] Odstranit + Kopirovat: Provede vsechny akce uvedene v bodech [0 a 1].
echo [9] Odstranit + Kopirovat: Simulace pro ucely testovani.
echo.
SET /P zmodus= Vyberte si nekterou z polozek [0, 1, 2 nebo 9]:
:ModeDone
If NOT (%zmodus%)==(0) If NOT (%zmodus%)==(1) If NOT (%zmodus%)==(2) If NOT (%zmodus%)==(9) (
set zmodus=
echo CHYBA: %zmodus% neni platny. Vyberte [0, 1, 2 nebo 9].
goto Modus
)
echo.
echo ZDROJ: %zquelle%
echo CIL: %zkopie%
if %zmodus% EQU 0 echo Rezim0: Pouze odstraneni ze slozky %zkopie%
if %zmodus% EQU 1 echo Rezim1: Pouze kopirovani do %zkopie%
if %zmodus% EQU 2 echo Rezim2: Kopirovani + odstranovani ze slozky %zkopie%
if %zmodus% EQU 9 echo Rezim9: Simulace kopirovani + odstranovani ze slozky %zkopie%
echo.
set zan=
if NOT (%zbatch%)==(1) SET /P zan= Jsou zadane parametry v poradku? [a-n]:
if NOT (%zbatch%)==(1) if /i NOT %zan%.==a. Goto OVER
REM Copy Machine ---------------------------------------------------------
echo. && echo COPY ------------------------------------------------------------- && echo.
if %zmodus% EQU 1 xcopy.exe /f /r /i /s /c /h /d /y "%zquelle%\*.*" "%zkopie%"
if %zmodus% EQU 2 xcopy.exe /f /r /i /s /c /h /d /y "%zquelle%\*.*" "%zkopie%"
if %zmodus% EQU 9 xcopy.exe /f /r /i /s /c /h /d /y /l "%zquelle%\*.*" "%zkopie%"
if %zmodus% EQU 1 goto OVER
REM Kill Machine ---------------------------------------------------------
color 0A
echo.
echo. && echo KILL ------------------------------------------------------------- && echo.
echo. && echo Vyhledavam prebytecne slozky... && echo.
dir /S /B /AD "%zkopie%\*.*" > %temp%\pcw1-1.tmp
for /f "Delims=" %%N in (%temp%\pcw1-1.tmp) DO call :DirKill "%%N"
echo. && echo Vyhledavam prebytecne soubory... && echo.
dir /S /B /A-D "%zkopie%\*.*" > %temp%\pcw1-1.tmp
for /f "Delims=" %%N in (%temp%\pcw1-1.tmp) DO call :FileKill "%%N"
color F1
echo.
echo ╔═══════════════════════════════════════╗
echo ║Porovnani souboru pomoci pcw1-1.v06.BAT║
echo ╚═══════════════════════════════════════╝
echo.
echo Zdrojova slozka: %zquelle%
echo Cilova slozka: %zkopie%
if %zmodus% NEQ 9 echo %zd% slozek
if %zmodus% NEQ 9 echo %zf% souboru
if %zmodus% EQU 9 echo Simulace - nekopiruji se ani neodstranuji zadne soubory.
echo.
goto OVER
:DirKill
set ztmp=%*
call set quelle=%%ztmp:%zkopie%=%zquelle%%%
if not exist %quelle% (
if exist %ztmp% (
if %zmodus% NEQ 9 RD /s /q %ztmp%
echo ╔══ %ztmp%
echo ╚═════ KILLED...
ping -n 1 localhost > NUL
)
) ELSE (
echo OK %ztmp%
set /a zd=zd+1
)
goto Dummy
:FileKill
set ztmp=%*
call set quelle=%%ztmp:%zkopie%=%zquelle%%%
if not exist %quelle% (
if %zmodus% NEQ 9 DEL /F /A %ztmp%
echo ╔══ %ztmp%
echo ╚═════ KILLED...
ping -n 1 localhost > NUL
) ELSE (
echo OK %ztmp%
set /a zf=zf+1
)
goto Dummy
REM Clean Up -------------------------------------------------------------
:OVER
if exist %temp%\pcw1-1.tmp del /F /A %temp%\pcw1-1.tmp
set zmodus=
set ZAN=
set zquelle=
set zkopie=
set zbatch=
set ztmp=
set zf=
set zd=
set quelle=
pause
:DUMMY